#include "filecomparisondialog.h"
#include <QVBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QFile>
#include <QFileInfo>
#include <QDateTime>
#include <QMessageBox>
#include <QHBoxLayout>

FileComparisonDialog::FileComparisonDialog(const QString &file1, const QString &file2, QWidget *parent)
    : QDialog(parent) {
    setWindowTitle("文件比较");

    // 创建左右两个垂直布局来显示文件信息
    QVBoxLayout *leftLayout = new QVBoxLayout;
    QVBoxLayout *rightLayout = new QVBoxLayout;

    // 创建水平布局来包含左右两个垂直布局
    QHBoxLayout *fileInfoLayout = new QHBoxLayout;
    fileInfoLayout->addLayout(leftLayout);
    fileInfoLayout->addLayout(rightLayout);

    // 加载并显示文件信息
    QFileInfo fileInfo1(file1);
    QFileInfo fileInfo2(file2);

    QString file1Info = QString("文件名: %1\n大小: %2 bytes\n最后修改时间: %3")
                            .arg(fileInfo1.fileName())
                            .arg(fileInfo1.size())
                            .arg(fileInfo1.lastModified().toString("yyyy-MM-dd hh:mm:ss"));

    QString file2Info = QString("文件名: %1\n大小: %2 bytes\n最后修改时间: %3")
                            .arg(fileInfo2.fileName())
                            .arg(fileInfo2.size())
                            .arg(fileInfo2.lastModified().toString("yyyy-MM-dd hh:mm:ss"));

    // 创建标签来显示文件信息
    QLabel *label1 = new QLabel(file1Info, this);
    QLabel *label2 = new QLabel(file2Info, this);

    // 将标签添加到左右布局中
    leftLayout->addWidget(label1);
    rightLayout->addWidget(label2);

    // 创建按钮布局
    QHBoxLayout *buttonLayout = new QHBoxLayout;
    QPushButton *replaceButton = new QPushButton("替换", this);
    QPushButton *cancelButton = new QPushButton("取消", this);

    // 将按钮添加到按钮布局中
    buttonLayout->addStretch(); // 添加伸缩空间以居中按钮（实际上在这个上下文中可能不需要）
    buttonLayout->addWidget(replaceButton);
    buttonLayout->addWidget(cancelButton);

    // 连接按钮的点击信号到相应的槽
    connect(replaceButton, &QPushButton::clicked, this, &QDialog::accept);
    connect(cancelButton, &QPushButton::clicked, this, &QDialog::reject);

    // 创建对话框的主布局（垂直布局）
    QVBoxLayout *mainLayout = new QVBoxLayout(this);

    // 将文件信息布局添加到主布局中
    mainLayout->addLayout(fileInfoLayout);

    // 在文件信息和按钮之间添加伸缩空间（可选，用于增加间距）
    mainLayout->addStretch();

    // 将按钮布局添加到主布局的底部
    mainLayout->addLayout(buttonLayout);

}
